package sv.gob.mh.dgii.model;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.NotEmpty;


@Entity
@Table(name = "IM_TIPO_DOCUM", schema = "IMPRENTAS")
public class ImTipoDocum implements java.io.Serializable {
	
	private static final long serialVersionUID = 8550549654590300544L;
	
	@Id
	@Column(name = "C_TIPO_DOCUMENTO", unique = true, nullable = false, length = 3)
	@NotNull
	@NotEmpty
	private String ctipoDocumento;
	
	@Column(name = "D_DOCUMENTO", nullable = false, length = 30)
	@NotNull
	@NotEmpty
	private String ddocumento;
	
	@Column(name = "C_LETRA", length = 1)
	@NotNull
	@NotEmpty
	private String cletra;
	
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "imTipoDocum")
	private Set<EdSolDocimFunic> edSolDocimFunics = new HashSet<EdSolDocimFunic>(
			0);
	
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "imTipoDocum")
	private Set<DcInfDetalle> dcInfDetalles = new HashSet<DcInfDetalle>(0);
	
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "imTipoDocum")
	private Set<DcInfDocivaExis> dcInfDocivaExises = new HashSet<DcInfDocivaExis>(
			0);
	
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "imTipoDocum")
	private Set<EdDocAutorizado> edDocAutorizados = new HashSet<EdDocAutorizado>(
			0);

	public ImTipoDocum() {
	}

	public ImTipoDocum(String ctipoDocumento, String ddocumento) {
		this.ctipoDocumento = ctipoDocumento;
		this.ddocumento = ddocumento;
	}

	public ImTipoDocum(String ctipoDocumento, String ddocumento, String cletra,
			Set<EdSolDocimFunic> edSolDocimFunics,
			Set<DcInfDetalle> dcInfDetalles,
			Set<DcInfDocivaExis> dcInfDocivaExises,
			Set<EdDocAutorizado> edDocAutorizados) {
		this.ctipoDocumento = ctipoDocumento;
		this.ddocumento = ddocumento;
		this.cletra = cletra;
		this.edSolDocimFunics = edSolDocimFunics;
		this.dcInfDetalles = dcInfDetalles;
		this.dcInfDocivaExises = dcInfDocivaExises;
		this.edDocAutorizados = edDocAutorizados;
	}

	public String getCtipoDocumento() {
		return this.ctipoDocumento;
	}

	public void setCtipoDocumento(String ctipoDocumento) {
		this.ctipoDocumento = ctipoDocumento;
	}

	public String getDdocumento() {
		return this.ddocumento;
	}

	public void setDdocumento(String ddocumento) {
		this.ddocumento = ddocumento;
	}

	public String getCletra() {
		return this.cletra;
	}

	public void setCletra(String cletra) {
		this.cletra = cletra;
	}

	
	public Set<EdSolDocimFunic> getEdSolDocimFunics() {
		return this.edSolDocimFunics;
	}

	public void setEdSolDocimFunics(Set<EdSolDocimFunic> edSolDocimFunics) {
		this.edSolDocimFunics = edSolDocimFunics;
	}

	public Set<DcInfDetalle> getDcInfDetalles() {
		return this.dcInfDetalles;
	}

	public void setDcInfDetalles(Set<DcInfDetalle> dcInfDetalles) {
		this.dcInfDetalles = dcInfDetalles;
	}

	public Set<DcInfDocivaExis> getDcInfDocivaExises() {
		return this.dcInfDocivaExises;
	}

	public void setDcInfDocivaExises(Set<DcInfDocivaExis> dcInfDocivaExises) {
		this.dcInfDocivaExises = dcInfDocivaExises;
	}

	public Set<EdDocAutorizado> getEdDocAutorizados() {
		return this.edDocAutorizados;
	}

	public void setEdDocAutorizados(Set<EdDocAutorizado> edDocAutorizados) {
		this.edDocAutorizados = edDocAutorizados;
	}

}
